Public Sub StartAutoCAD()
    ' Déclarations des variables
    Dim acadApp As Object
    Dim AcadDoc As Object
    Dim Ws As Worksheet
    Dim LastRow As Long
    Dim i As Long
    Dim ZoneName As String
    Dim State As String
    Dim Layer As Object
    Dim Red As Integer, Green As Integer, Blue As Integer

    ' Connexion à AutoCAD
    On Error Resume Next
    Set acadApp = GetObject(, "AutoCAD.Application") ' Essayer de se connecter à AutoCAD en cours
    If Err.Number <> 0 Then
        Err.Clear
        Set acadApp = CreateObject("AutoCAD.Application") ' Créer une nouvelle instance d'AutoCAD si aucune n'est en cours
        If Err.Number <> 0 Then
            MsgBox "Erreur lors de la connexion à AutoCAD. Assurez-vous qu'AutoCAD est installé.", vbCritical
            Exit Sub
        End If
    End If
    On Error GoTo 0

    acadApp.Visible = True ' Rendre AutoCAD visible

    ' Vérification et définition du document actif
    On Error Resume Next
    Set AcadDoc = acadApp.ActiveDocument ' Obtenir le document actif ==>  A MODOIFIER PAR OUVERTURE DU DOCUMENT PLEN EXE "XXX"
    If AcadDoc Is Nothing Then
        MsgBox "Aucun document actif dans AutoCAD. Veuillez ouvrir un fichier DWG avant d'exécuter ce script.", vbCritical
        Exit Sub
    End If
    On Error GoTo 0

    ' Accéder à la feuille Excel
    Set Ws = ThisWorkbook.Sheets("Feuil1") ' Remplacer "Feuil1" par le nom de votre feuille
    LastRow = Ws.Cells(Ws.Rows.Count, "F").End(xlUp).Row ' Dernière ligne non vide dans la colonne F

    ' Boucle sur les zones dans Excel
    For i = 6 To LastRow ' Commence à la ligne 6
        ZoneName = Ws.Cells(i, "F").Value ' Nom de la zone (Colonne F)
        State = Ws.Cells(i, "G").Value ' État de la zone (Colonne G)

        ' Définir la couleur selon l'état
        If State = "Réalisé" Then
            Red = 0: Green = 255: Blue = 0 ' Vert
        ElseIf State = "Non Réalisé" Then
            Red = 255: Green = 0: Blue = 0 ' Rouge
        ElseIf State = "En Cours" Then
            Red = 255: Green = 255: Blue = 0 ' Jaune
        Else
            Red = 200: Green = 200: Blue = 200 ' Gris pour état inconnu
        End If

        ' Vérifier ou créer le calque
        On Error Resume Next
        Set Layer = AcadDoc.Layers.Item("zone_XXXX")  ' Vérifie si le calque existe
        If Layer Is Nothing Then
            Set Layer = AcadDoc.Layers.Add(ZoneName) ' Crée un nouveau calque si nécessaire
        End If
        On Error GoTo 0
        Dim color As New AcadAcCmColor
        Call color.SetRGB(125, 175, 235) 'Couleur RVB a prendre dans une palette de couleur
        Layer.TrueColor = color
        
    Next i

    MsgBox "Les modifications de couleur ont été appliquées aux calques dans AutoCAD.", vbInformation
End Sub
